﻿using System.Collections;

namespace zijian666.Updater;

partial class RemoteData : IReadOnlyCollection<RemoteData.VersionInfo>
{
    /// <summary>
    /// 返回用于遍历 <see cref="RemoteData.VersionInfo"/> 集合的枚举器。
    /// </summary>
    /// <returns>用于遍历集合的枚举器。</returns>
    IEnumerator<VersionInfo> IEnumerable<VersionInfo>.GetEnumerator() => _list.GetEnumerator();

    /// <summary>
    /// 返回用于遍历集合的枚举器（非泛型）。
    /// </summary>
    /// <returns>用于遍历集合的枚举器。</returns>
    IEnumerator IEnumerable.GetEnumerator() => _list.GetEnumerator();

    /// <summary>
    /// 加载版本信息集合，替换当前内容。
    /// </summary>
    /// <param name="versions">要加载的版本信息集合。</param>
    protected void ReloadData(IEnumerable<VersionInfo> versions)
    {
        _list.Clear();
        foreach (var item in versions.OrderByDescending(v => v.Version))
        {
            _list.Add(item);
        }
        LoadTime = DateTime.Now;
    }
}
